package com.caits.lbs.framework.services.memcache;

import java.util.concurrent.TimeoutException;

import net.rubyeye.xmemcached.exception.MemcachedException;

import com.caits.lbs.exception.LBSException;

public interface IMemcacheService {


	/**
	 * 存放一个对象 
	 * @param key 关键字
	 * @param exp 有效期时长，单位秒
	 * @param value 对象的值
	 * @return
	 * @throws LBSException
	 */
	public boolean put(String key, int exp, Object value)
			throws LBSException;

	/**
	 * FIXME 
	 * @param key 关键字
	 * @param exp 有效期时长，单位秒
	 * @param value  对象的值
	 * @param expiry 操作超时时长,单位毫秒
	 * @return
	 * @throws LBSException
	 */
	public boolean put(String key, int exp, Object value, long expiry)
			throws LBSException;

	/**
	 * 根据指定的关键字获取对象. 内部测试方法, 准备删除.
	 * 
	 * @param key
	 * @return
	 * @throws MemcachedException
	 * @throws InterruptedException
	 * @throws TimeoutException
	 */
	public Object get(String key) throws LBSException;

	/**
	 * 发送短消息 
	 * @param head	消息头
	 * @param body	消息正文
	 */
	public void sendMessage(final String head,final String body);
}